<html>
<head><meta charset="utf-8"><title>Rust at a larger scale. · t-lang · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/index.html">t-lang</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html">Rust at a larger scale.</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="194760155"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194760155" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194760155">(Apr 21 2020 at 04:36)</a>:</h4>
<p>This is just me thinking aloud. Most crates are currently carefully manually designed by the author, with carefully designed ownership and borrowing correspondence for values, types, and function boundaries, which is awesome.</p>



<a name="194760237"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194760237" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194760237">(Apr 21 2020 at 04:39)</a>:</h4>
<p>I'm with you so far.</p>



<a name="194760238"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194760238" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194760238">(Apr 21 2020 at 04:39)</a>:</h4>
<p>However I'm thinking about something in larger scale. In data processing applications and many other applications, we are often processing data following some kind of external specification, written in schema or some other form. These specifications are sometimes very large. Examples are MS OOXML specifications and many others.</p>



<a name="194760292"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194760292" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194760292">(Apr 21 2020 at 04:40)</a>:</h4>
<p>For that you'd probably use a "type that is less typed". For example, an general XML tree type instead of having a specific type for a specific XML DTD.</p>



<a name="194760302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194760302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194760302">(Apr 21 2020 at 04:40)</a>:</h4>
<p>Yes, exactly.</p>



<a name="194760316"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194760316" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194760316">(Apr 21 2020 at 04:41)</a>:</h4>
<p>However, to achieve ergonomics the more specialized API needs to be created. It's no fun for downstream crates to deal with the general types.</p>



<a name="194760323"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194760323" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194760323">(Apr 21 2020 at 04:41)</a>:</h4>
<p>woahhh that's a bit of a leap maybe</p>



<a name="194760394"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194760394" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194760394">(Apr 21 2020 at 04:43)</a>:</h4>
<p>Imagine i'm writing a docx format report generator, with a xml dom library and xml writer library, theorically it's enough.</p>



<a name="194760453"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194760453" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194760453">(Apr 21 2020 at 04:44)</a>:</h4>
<p>There's a lot of schema information that should be mapped to API surface.</p>



<a name="194760467"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194760467" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194760467">(Apr 21 2020 at 04:45)</a>:</h4>
<p>And focusing on your exact needs lets you cut a lot of corners. For example you don't need to support 100% of XML to parse a <em>lot</em> of XML description files, you can usually get away with like a 200 line module that as a super simple API.</p>



<a name="194760542"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194760542" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194760542">(Apr 21 2020 at 04:47)</a>:</h4>
<p>Yes, that's right. However it seems to me it's just delaying the problem, "i'll add what i need now and leave the rest to the future".</p>



<a name="194760598"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194760598" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194760598">(Apr 21 2020 at 04:48)</a>:</h4>
<p>having every feature ever in every crate ever is just a way to summon code bloat.</p>



<a name="194760604"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194760604" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194760604">(Apr 21 2020 at 04:48)</a>:</h4>
<p>There's a lot of reasons people don't like <code>rand</code>, and one of them is "I can't even tell how to make the dumb thing go"</p>



<a name="194760678"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194760678" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194760678">(Apr 21 2020 at 04:51)</a>:</h4>
<p>I think you're right, but there're different scenarios. I think in many businesses you can't tell the customer "i'll add the missing features when you need it", things like that.</p>



<a name="194760733"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194760733" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194760733">(Apr 21 2020 at 04:53)</a>:</h4>
<p>Well, sure, in most businesses you can say "I'll add the missing feature never.", but maybe more nicely somehow, like "We value your feedback and will work to improve on our core mission".</p>



<a name="194760794"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194760794" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194760794">(Apr 21 2020 at 04:55)</a>:</h4>
<p>Oh, i mean sometimes the delivery is one-shot. The source code and maintenance will be transferred to another party when it's "code complete".</p>



<a name="194760865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194760865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194760865">(Apr 21 2020 at 04:56)</a>:</h4>
<p>Maybe that's not a recipe for awesome software, but it's reality sometimes.</p>



<a name="194760870"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194760870" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194760870">(Apr 21 2020 at 04:57)</a>:</h4>
<p>Sure, there's a lot of scenarios. If you're trying to attract users then having more features is good. If you're trying to finish on time then focus is good. And many places in between.</p>



<a name="194761160"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194761160" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194761160">(Apr 21 2020 at 05:04)</a>:</h4>
<p>So in short, i think i'm seeking ways for "mass production" of rust code, that will enable its use in more business scenarios.</p>



<a name="194761184"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Rust%20at%20a%20larger%20scale./near/194761184" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Charles Lew <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Rust.20at.20a.20larger.20scale.2E.html#194761184">(Apr 21 2020 at 05:05)</a>:</h4>
<p>Designs and tools to deal with the "uninteresting but large part" of the system.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>